package com.gitee.cnlongs.cnlongmq.server.test;

import java.util.List;

import com.alibaba.fastjson.JSON;
import com.gitee.cnlongdb.LongDbServer;
import com.gitee.cnlongdb.basic.entity.query.LongDbQuery;
import com.gitee.cnlongs.cnlongmq.basic.entitiy.request.CnLongMqMessage;

/**
 * 系统名称：LongDbTest
 * 模块名称：
 × 模块描述：longdb - 数据库 - 测试类
 × 功能列表：
 × 模块作者：ZOUYONG
 × 开发时间：2018年11月16日 下午12:32:15
 × 模块路径：com.gitee.cnlongdb.server.test.LongDbTest1
 */
public class LongDbTest1 {
	
	public static LongDbServer longDbServer = new LongDbServer("configtest/longdbconfig1");
	
	public static void main(String[] args) throws Exception {

		long time1 = System.currentTimeMillis();
		
		queryOperator("cnlong-test100");
		
		System.out.println("主线程执行完成！-XX:+PrintGCDetails，操作总耗时：" + 
				Float.toString((System.currentTimeMillis() - time1) / 1000F) + " 秒. ");
	}

	/**
	 * 功能描述：查询操作
	 * 模块作者：ZOUYONG
	 * 开发时间：2018年11月17日 下午9:04:15
	 * 更新记录：
	 * 返回数据：void
	 */
	private static void queryOperator(String tableName) throws Exception {
		
		// 分页查询 + 排序
		LongDbQuery query = new LongDbQuery();
		query.setClassz(CnLongMqMessage.class);
		// 设置要查询的表名称
		query.setTableName(tableName);
		query.setPageNo(1);
		query.setPageSize(200);
//		query.setYearMothDayArys("2019-03-28;2019-03-29&2019-03-27");
//		query.setYearMothDayArys("2019-03-28");
//		query.addSort("id", LongDbSortMode.ASC, LongDbSortTypes.Number);
//		query.addSort("name", LongDbSortMode.DESC, LongDbSortTypes.String);
//		query.addSort("age", LongDbSortMode.ASC, LongDbSortTypes.Number);
//		query.addSort("createDate", LongDbSortMode.ASC, LongDbSortTypes.Date);
//		query.addLongDbWhere(LongDbWhere.where("longId").in("88105qrsVE201811282109023547809957", "88142KvXXT201811282109023547809957"));
//		query.addLongDbWhere(LongDbWhere.where("age").between(100, 6000, Integer.class));
//		query.addLongDbWhere(LongDbWhere.where("userCode").is("102").tableMatching(true));
		
		List<CnLongMqMessage> list = longDbServer.find(query);
		System.out.println(list.size()+"........................查询总数量：" + query.getQueryTotalCount());
		for (int i=0; i<list.size(); i++) {
			if(i < 10) {
				CnLongMqMessage msg = list.get(i);
				System.out.println("消息角色：" + msg.getLongMqRole() +  
					"; 消息发送时间：" + msg.getSendDate().getTime()+"; 消息发送是否成功：" + msg.getSendStatus() 
					+ "; 消息处理状态：" + msg.getLongMqStatus() + "; 消息接收时间：" + msg.getCustomerDate()  
					+ "; 消息接收是否成功：" + msg.getCustomerStatus() + "; 消息处理失败码：" + msg.getErrorCode() 
					+ "; 消息消费完成时间：" + msg.getCompleteDate() + "; 通知发送方时间: " + msg.getNoticeSenderDate()
					+ "; 通知发送方状态: " + msg.getNoticeSenderStatus() + "; ACK确认状态：" + msg.getAckConfirm());
			}
		}
		
//		long totalCount = longDbServer.count(query);
//		System.out.println("查询符合条件的总数量是：" + totalCount);
	}
	
}
